﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuanLyBanHang_NewApp.BUS;
using QuanLyBanHang_NewApp.Entity;

namespace QuanLyBanHang_NewApp
{
    public partial class FormNhapHang : Form
    {
        private PhieuNhapBUS pnBUS;
        private SanPhamBUS spBUS;
        private NhaCungCapBUS nccBUS;
        private PhieuNhap phieuNhap;
        private NhanVien nVien = new NhanVien();
        public FormNhapHang(NhanVien nvien)
        {
            this.pnBUS = new PhieuNhapBUS();
            this.spBUS = new SanPhamBUS();
            this.nccBUS = new NhaCungCapBUS();
            this.phieuNhap = new PhieuNhap();
            nVien = nvien;
            InitializeComponent();
        }

        private void FormNhapHang_Load(object sender, EventArgs e)
        {
            datagridPN.DataSource = phieuNhap.getDetail();
            datagridPN.Columns[0].HeaderText = "Mã sản phẩm";
            datagridPN.Columns[1].HeaderText = "Tên sản phẩm";
            datagridPN.Columns[2].HeaderText = "Giá nhập";
            datagridPN.Columns[3].HeaderText = "Số lượng";
        }

        private void BindGrid()
        {
            BindingSource grsource = new BindingSource();
            grsource.DataSource = phieuNhap.getDetail();
            datagridPN.DataSource = grsource;
            datagridPN.Columns[0].ReadOnly = true;
            datagridPN.Columns[1].ReadOnly = true;
            datagridPN.Columns[2].ReadOnly = true;
            datagridPN.Columns[3].ReadOnly = true;
        }

        private void btn_ThemSP_Click(object sender, EventArgs e)
        {
            try
            {
                SanPham sp = new SanPham();
                sp = spBUS.findByID(long.Parse(txtMasp.Text));

                //
               sp.setPrice(double.Parse(txtGianhap.Text));
                if (sp != null)
                {
                    phieuNhap.addToPN(sp, int.Parse(txtSoluong.Text));
                    double tien = double.Parse(phieuNhap.getAttribute("tonggia"));

                    lblTonggia.Text = String.Format("Tổng giá: {0:0,0} đồng", tien);
                    BindGrid();
                }
                else
                {
                    MessageBox.Show("Không tồn tại sản phẩm này");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Có lỗi !!" + ex.Message);
            }
        }

        private void btn_NCC_Click(object sender, EventArgs e)
        {
            if (phieuNhap.getDetail().Count > 0)
            {
                
                NhaCungCap ncc = nccBUS.timTheoID(long.Parse(txtMancc.Text));
                if (ncc != null)
                {
                    txtInfo.Clear();
                    phieuNhap.setNCC(long.Parse(ncc.getAttribute(0)));
                    txtInfo.Text = ncc.toString();
                    double tien = double.Parse(phieuNhap.getAttribute("tonggia"));

                    lblTonggia.Text = String.Format("Tổng giá: {0:0,0} đồng", tien);
                }
                else MessageBox.Show("Không tồn tại nhà cung cấp này");
            }
            else
            {
                MessageBox.Show("Chưa có mặt hàng nào trong phiếu nhập");
            }
        }

        private void btn_LuuPN_Click(object sender, EventArgs e)
        {
            try
            {
                if (phieuNhap.getDetail().Count > 0)
                {
                    if (pnBUS.luuPhieuNhap(phieuNhap, long.Parse(nVien.getAttribute(0))))
                    {
                        MessageBox.Show("Lưu phiếu nhập thành công");
                        phieuNhap = new PhieuNhap();
                        lblTonggia.Text = "Tổng giá";
                        txtInfo.Text = "";
                        txtMancc.Text = "";
                        BindGrid();
                    }
                    else MessageBox.Show("Lỗi khi lưu phiếu nhập");
                }
                else
                {
                    MessageBox.Show("Chưa có sản phẩm nào trong phiếu nhập");
                }
            }
            catch(Exception exc)
            {
                MessageBox.Show("Lỗi khi lưu phiếu nhập" +exc.Message);
            }
        }

        private void btn_Huy_Click(object sender, EventArgs e)
        {
            phieuNhap = new PhieuNhap();
            txtMancc.Text = "";
            txtInfo.Text = "";
            lblTonggia.Text = "Tổng giá";
            BindGrid();
        }

        private void btn_Thoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void datagridPN_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            
        }

        private void datagridPN_UserDeletedRow(object sender, DataGridViewRowEventArgs e)
        {
            phieuNhap.deleteItem();
            BindGrid();            
            double tien = double.Parse(phieuNhap.getAttribute("tonggia"));

            lblTonggia.Text = String.Format("Tổng giá: {0:0,0} đồng", tien);
            
        }

        private void txtGianhap_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsControl(e.KeyChar) && !Char.IsDigit(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void txtSoluong_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsControl(e.KeyChar) && !Char.IsDigit(e.KeyChar))
            {
                e.Handled = true;
            }
        }


    }
}
